]> dgit.raspbian.org Git - gnome-shell.git/commitdiff
ibusManager: Pass on envrionment variables to ibus-daemon
authororeo639 <oreo6391@gmail.com>
Mon, 27 Jun 2022 00:56:48 +0000 (17:56 -0700)
committerFlorian Müllner <fmuellner@gnome.org>
Sat, 2 Jul 2022 11:04:43 +0000 (11:04 +0000)
Previously only DISPLAY was being passed on to ibus, which results in issues
with missing the WAYLAND_DISPLAY or the DBUS_SESSION_BUS_ADDRESS environemnt
variables for example.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2345>

js/misc/ibusManager.js

index c1e73d0083be4037ceaa7f6302b1264d0398ebd0..420459b769323129b76fce1ee4c50ae197f449f0 100644 (file)
@@ -90,11 +90,25 @@ var IBusManager = class {
             this._spawn(Meta.is_wayland_compositor() ? [] : ['--xim']);
     }
 
+    _tryAppendEnv(env, varname) {
+        const value = GLib.getenv(varname);
+        if (value)
+            env.push(`${varname}=${value}`);
+    }
+
     _spawn(extraArgs = []) {
         try {
             let cmdLine = ['ibus-daemon', '--panel', 'disable', ...extraArgs];
             let env = [];
 
+            this._tryAppendEnv(env, 'DBUS_SESSION_BUS_ADDRESS');
+            this._tryAppendEnv(env, 'WAYLAND_DISPLAY');
+            this._tryAppendEnv(env, 'HOME');
+            this._tryAppendEnv(env, 'LANG');
+            this._tryAppendEnv(env, 'LC_CTYPE');
+            this._tryAppendEnv(env, 'COMPOSE_FILE');
+            this._tryAppendEnv(env, 'DISPLAY');
+
             GLib.spawn_async(
                 null, cmdLine, env,
                 GLib.SpawnFlags.SEARCH_PATH,